home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 7
/
Apprentice-Release7.iso
/
Source Code
/
Pascal
/
Snippets
/
PNL Libraries
/
MyFinderControl.p
< prev
next >
Wrap
Text File
|
1996-07-21
|
3KB
|
126 lines
unit MyFinderControl;
interface
uses
Files;
function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
implementation
uses
AppleEvents, AERegistry, AEPackObject, AEObjects,
MyAEUtils, MyFileSystemUtils;
function CreateFinderEvent (classid, eventid: AEEventID; var event: AEDesc): OSErr;
var
target: AEDesc;
err: OSErr;
begin
AECreate( target );
AECreate( event );
err := CreateSignatureDesc( 'MACS', target );
if err = noErr then begin
err := AECreateAppleEvent( classid, eventid, target, kAutoGenerateReturnID, kAnyTransactionID, event );
end;
AEDestroy( target );
if err <> noErr then begin
AEDestroy( event );
end;
CreateFinderEvent := err;
end;
function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
var
err: OSErr;
event, reply: AppleEvent;
result: longint;
obj, name_desc, prop_desc, parent: AEDesc;
fullpath: Str255;
begin
AECreate( event );
AECreate( reply );
AECreate( obj );
AECreate( name_desc );
AECreate( prop_desc );
AECreate( parent );
err := CreateFinderEvent( kAECoreSuite, kAESetData, event );
if err = noErr then begin
err := FSSpecToFullPath( spec, fullpath );
end;
if err = noErr then begin
err := CreateStringDesc( fullpath, name_desc );
end;
if err = noErr then begin
err := CreateTypeDesc( 'labi', prop_desc );
end;
if err = noErr then begin
err := CreateObjSpecifier(cItem, AENull, formName, name_desc, false, parent);
end;
if err = noErr then begin
err := CreateObjSpecifier(cLongInteger, parent, formPropertyID, prop_desc, false, obj);
end;
if err = noErr then begin
err := AEPutParamDesc( event, keyDirectObject, obj );
end;
if err = noErr then begin
err := PutLongToAERecord( event, keyAEData, colour );
end;
if err = noErr then begin
err := AESend( event, reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, nil, nil);
end;
if (err = noErr) & (GetLongFromAERecord( event, keyErrorNumber, result ) = noErr) then begin
err := result;
end;
AEDestroy( event );
AEDestroy( reply );
AEDestroy( obj );
AEDestroy( name_desc );
AEDestroy( prop_desc );
AEDestroy( parent );
FinderSetColour := err;
end;
end.
function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
var
err: OSErr;
event, reply: AppleEvent;
result: longint;
begin
err := CreateFinderEvent( kAECoreSuite, kAESetData, event );
if err = noErr then begin
err := PutFSSpecToAERecord( event, keyDirectObject, spec );
end;
if err = noErr then begin
err := PutLongToAERecord( event, keyAEData, colour );
end;
if err = noErr then begin
err := AESend( event, reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, nil, nil);
end;
if (err = noErr) & (GetLongFromAERecord( event, keyErrorNumber, result ) = noErr) then begin
err := result;
end;
FinderSetColour := err;
end;
ffspec, null, formName, path string, filedesc
integer, filedesc, formPropertyID, typeType:labi
desired class, container, key form, key data desc, dispose inputs, result
formPropertyID, typeType:labi
err := CreateObjSpecifier(cItem, root_desc, formName, name_desc, false, parent);
end; (* if *)
if err = noErr then begin
err := CreateObjSpecifier(cQDPoint, parent, formPropertyID, prop_desc, false, obj);
end; (* if*)